TypeScript 런타임 유형 확인 보충 도구
2376 단어 TypeScript유형 검사
import { Ty } from 'tyshemo'
@Ty.decorate.with([Number, Number])
class Some {
constructor(a, b) {
this.x = a + b
}
@Ty.decorate.with(String)
name = 'calc'
@Ty.decorate.with([Number], Number)
plus(y) {
return this.x + y
}
}
const some = new Some(1, 3) // ok
const some2 = new Some('1', '3') // throw error
some.name = 'ooo' // ok
some.name = 123 // throw error
const z = some.plus(2) // ok
const z1 = some.plus('3') // throw error
우리는 타이를 통과할 수 있다.decorate.with () 는 장식기로서 클래스 속성의 값 유형, 방법의 매개 변수와 반환 값 유형을 제한합니다.정상적인 프로그램에서, 우리는 때때로 값을 한정해야 하지만, js 언어의 특성 때문에, 우리는 기초 유형의 값을 감청할 수 없지만, 우리는object를 감청할 수 있다.다음과 같은 작업을 수행할 수 있습니다.
const o = process.env.NODE_ENV === 'production' ? {} : Ty.decorate({}).with({
name: String,
age: Number,
})
o.name = null // throw error
o.name = 'aaa' // ok
o.age = '12' // throw error
o.age = 12 // ok
프로세스를 통과합니다.env.NODE_ENV ===='production'으로 현재 환경을 제어할 수 있습니다. 만약에 정식 환경이라면 이 능력이 필요하지 않습니다. 왜냐하면 우리는 테스트 환경에서 충분히 검증을 했기 때문입니다.API에서 나온 데이터를 확인하려면 이렇게 할 수 있습니다.
function getData(url) {
return fetch(url).then(res => res()).then((data) => {
if (process.env.NODE_ENV !== 'production') {
Ty.expect(data).to.be({
name: String,
age: Number,
})
}
return data
})
}
Ty 이 인터페이스는 데이터를 신속하게 구조화 검사할 수 있습니다.tyshemo는 문서에서 더 많은 것을 알 수 있는 다른 능력이 있습니다.TypeScript가 실행될 때 형식 검사 보충 도구에 대한 이 글은 여기에 소개되어 있습니다. 더 많은 TypeScript가 실행될 때 형식 검사 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cypress에서 Stripe Elements의 자동 테스트 수행을 사용하여 E2E 테스트를 작성할 때 약간의 고려가 필요했기 때문에 비망으로 남겨 둡니다 ✍️ 을 사용하여 이런 코드에서 카드 번호 입력 요소를 만들었습니다. 본래라면, 카드 정보의 입력이 다른 도메인(Stripe...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.