TypeScript 中 Property or signature expected 错误

当我们在声明类型或接口时遇到语法错误时,就会出现“Property or signature expected”错误。 要解决该错误,请确保用冒号分隔属性和类型,并将包含连字符或空格的属性用引号括起来。

以下是错误发生方式的 3 个示例。

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;
}

第一个例子的错误原因是接口中的属性名包含连字符。

如果接口、类型或对象中的属性名称包含连字符,我们必须将其括在引号中。

interface Employee {
  'first-name': string;
}

const emp: Employee = {
  'first-name': 'James',
};

请注意 ,无论是在接口中还是在声明 Employee 类型的对象时,我们都必须将属性用引号引起来。

空格(或大多数其他分隔符)也是如此。

如果对象、类型或接口属性包含空格,请将其括在引号中。

type Example = {
  'two words': string;
};

const e: Example = {
  'two words': 'hello world',
};

错误的另一个常见原因是错误地用等号或任何其他不是冒号的符号分隔属性和类型。

type Person = {
  // ⛔️ Error: Property or signature expected.ts(1131)
  country = string;
}

始终确保用冒号分隔属性名称和类型。

type Person = {
  country: string;
};

const person: Person = {
  country: 'Germany',
};

请注意 ,我们不能在类型和接口中提供默认值,因为 TypeScript 仅帮助我们在开发过程中捕获错误。

当我们的代码编译为 JavaScript 时,我们定义的所有类型和接口都将被删除。


总结

当我们在声明类型或接口时遇到语法错误时,就会出现“Property or signature expected”错误。 要解决该错误,请确保用冒号分隔属性和类型,并将包含连字符或空格的属性用引号括起来。