我喜欢tslint来检查我的物体是否形成良好。这意味着 1)是强制性要素存在 2)只有可选成员才能出席
nr 1)工作正常。 2)我不知道如何在编译器中启用它
这里的例子是
export interface MyDto {
lastName: string;
firstName?: string;
}
因此以下数据是正确的,并且不提供打字稿警告
myData: MyDto ={
"lastName":"Joe"
}
或
myData: MyDto ={
"lastName":"Joe",
"firstName":"Max"
}
但是这应该失败,因为dateOfBirth没有在方案中定义
myData: MyDto ={
"lastName":"Joe",
"firstName":"Max",
"dateOfBirth":"2015-12-24"
}
或者是否有我可以使用的打字稿编译器选项?我没有看到这个。
答案 0 :(得分:3)
在TypeScript 1.6+中,以下代码:
export interface MyDto {
lastName: string;
firstName?: string;
}
let myData: MyDto ={
"lastName":"Joe"
}
let myData2: MyDto ={
"lastName":"Joe",
"firstName":"Max",
"dateOfBirth":"2015-12-24" // Error
}
引发以下错误:
main.ts(13,5): error TS2322: Type '{ "lastName": string; "firstName": string; "dateOfBirth": string; }' is not assignable to type 'MyDto'.
Object literal may only specify known properties, and '"dateOfBirth"' does not exist in type 'MyDto'.
所以你不需要一个tslint规则。