0

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

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

4

1 回答 1

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

于 2015-12-11T13:29:26.987 回答