我是 Typescript 的新手,所以这可能是一个愚蠢的问题。
我有一个功能,例如:
interface MyType {
myField: string
myOtherField: string
}
const myFunction = (input: MyType) => { ... }
我注意到这个函数能够接收不是 的值MyType
,例如我已经看到了诸如MyType[]
或 之类的值string
。
现在,这可能是因为 Typescript 只是输出 Javascript 代码,它根本不知道类型。
有没有办法强制类型检查并在Error
发生这种不匹配时抛出异常?
编辑:以供将来参考,请参阅https://github.com/fabiandev/ts-runtime
类型由 TypeScript 编译器检查并在编译期间被擦除。
当你在 TypeScript 中工作时,你会得到所有你期望的检查:
interface MyType {
myField: string
myOtherField: string
}
const myFunction = (input: MyType) => {
return input.myField;
};
// OK
myFunction({ myField: '', myOtherField: '' });
// NOT OK
myFunction([{ myField: '', myOtherField: '' }]);
但是,如果您在运行时从另一个 JavaScript 文件调用转译后的 JavaScript,则不会进行类型检查。运行时的类型检查不是 TypeScript 的功能。
有一个为 TypeScript创建运行时类型安全编译器的简短倡议,但它没有获得吸引力,并且自 2014 年以来一直没有更新。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句