以下のコードブロックでこのエラーが発生します。
_error TS2339: Property 'endsWith' does not exist on type 'string'
_
_let myList = angular.element(elem).attr("href").split("/");
let last = _.last<string>(myList);
if (last.endsWith("something")) {
return last;
}
_
また、関数endsWith(...)
があることを示すこのリンクを発見しました。
_.d.ts
_ファイルがありませんか?
TypeScriptコードをコンパイルするときは、ターゲットをES6に向けてください。
tsc --target ES6 "filename"
ここでは:VSコードをIDEとして使用しました
問題は:でした
let fName:String = "Yokey";
console.log(fName.anchor("url"));
結果は:
PS C:\MYahya\OS_DEV\TypeScript_lrn\1> tsc main.ts
main.ts(2,19): error TS2339: Property 'anchor' does not exist on type 'String'.
解決策:
プロジェクトに次のtsconfig.json
ファイルを含める必要があります。
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"strictNullChecks": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"baseUrl": "../types",
"typeRoots": [
"../types"
],
"types": [],
"forceConsistentCasingInFileNames": true,
}
}
次に、tsc
(ファイル名なし)を使用したので、トランスパイラーはtsconfig.json
を使用して、ディレクトリでホストされているすべてのタイプスクリプトファイルをjs
ファイルにトランスコンパイルします。
webStormのようにintelliJ IDE)を使用している場合は、プロジェクトファイルが左側にある領域をクリックして、tsconfig.jsonを検索します。そのファイルで、esが古いバージョンに設定されていることがわかります。 「target」:「es3」を「target」:「es2018」のような最新のものに変更します