tslint对可选成员变量

时间:2015-12-11 13:07:32

标签: typescript tslint

我喜欢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"
}

或者是否有我可以使用的打字稿编译器选项?我没有看到这个。

1 个答案:

答案 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
}

[Playground]

引发以下错误:

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规则。