TypeScript 中的属性或签名预期错误
Property or signature expected error in TypeScript
当我们在声明类型或接口时遇到语法错误时,就会出现“预期的属性或签名”错误。要解决该错误,请确保用冒号分隔属性和类型,并将包含连字符或空格的属性用引号括起来。
以下是错误发生方式的 3 个示例。
索引.ts
interface Employee { // ⛔️ Error: Property or signature expected.ts(1131) first-name: string; } type Example = { // ⛔️ Error: Property or signature expected.ts(1131) two words: string; } type Person = { // ⛔️ Error: Property or signature expected.ts(1131) country = string; }
第一个例子的错误原因是接口中的属性名包含连字符。
如果接口、类型或对象中的属性名称包含连字符,我们必须将其括在引号中。
索引.ts
interface Employee { 'first-name': string; } const emp: Employee = { 'first-name': 'James', };
请注意,我们必须在接口中和声明 type 的对象时将属性用引号括起来Employee
。
空格(或大多数其他分隔符)也是如此。
如果对象、类型或接口属性包含空格,请将其括在引号中。
索引.ts
type Example = { 'two words': string; }; const e: Example = { 'two words': 'hello world', };
错误的另一个常见原因是错误地用等号或任何其他不是冒号的符号分隔属性和类型。
索引.ts
type Person = { // ⛔️ Error: Property or signature expected.ts(1131) country = string; }
始终确保用冒号分隔属性名称和类型。
索引.ts
type Person = { country: string; }; const person: Person = { country: 'Germany', };
请注意,您不能在
types
和
interfaces中提供默认值,因为 TypeScript 仅帮助我们在开发过程中捕获错误。
当您的代码编译为 JavaScript 时,您定义的所有类型和接口都将被删除。
结论
当我们在声明类型或接口时遇到语法错误时,就会出现“预期的属性或签名”错误。要解决该错误,请确保用冒号分隔属性和类型,并将包含连字符或空格的属性用引号括起来。