我曾经看到过关于字符串数组的此错误提及,但没有涉及实际字符串。我有一个包含以下行的TypeScript文件
if (!bus.lineInfo.PublishedLineName.includes(input)) {
这让我出现了一个错误:
TS2339: Property 'includes' does not exist on type 'string'.
bus
是一个实现了bus
接口的变量:
interface bus {
"lineInfo": {
"PublishedLineName": string,
"DestinationName": string, // The headsign of the bus
"Color": string,
"TextColor": boolean | string // false if this is "FFFFFF", otherwise it's the color
},
"warnings": boolean | busWarnings
"marker"?: google.maps.Marker,
"result"?: JQuery // The search result that appears in the sidebar
}
lineInfo.PublishedLineName
被声明为string
类型,String.prototype.includes()
是MDN中的一个函数,那么为什么TypeScript编译器会抱怨缺少属性/方法?
tsconfig.json
中的 "target" 和 "lib" 设置是什么?String.includes
是 ES6 中的一个方法。 - Matt McCutchenes5
。我没有设置 "lib" 选项。将 "lib" 设为 "es2015" 可以解决字符串错误,但会在我从 DefinitelyTyped 中获得的 jQuery d.ts 文件中引发一些错误。 - Michael Kolber