Visual Studio 2015でTypeScript 1.5が動かない?「TypeScript Feature 1.5. Current language level is 1.4」エラーの原因と解決策
Visual Studio 2015 で TypeScript 1.5 機能を使用する際に発生するエラー: "TypeScript Feature 1.5. Current language level is 1.4" の解決策
Visual Studio 2015 はデフォルトで TypeScript 1.4 をサポートしており、TypeScript 1.5 の機能を使用するには、設定を変更する必要があります。
解決策
Visual Studio 2015 を最新バージョンに更新する
TypeScript プロジェクトの設定を変更する
TypeScript プロジェクトの設定を変更して、TypeScript 1.5 の機能を使用できるようにする必要があります。以下の手順を実行してください。
- Visual Studio 2015 で TypeScript プロジェクトを開きます。
- プロジェクトメニューから プロパティを選択します。
- TypeScript ビルドページを選択します。
- TypeScript コンパイラ オプションフィールドで、以下のオプションを追加します:
--target ES6
- OKをクリックして、変更を保存します。
ReSharper の設定を変更する
ReSharper を使用している場合は、ReSharper の設定を変更して、TypeScript 1.5 の機能を使用できるようにする必要があります。以下の手順を実行してください。
- ReSharper で オプションメニューを開きます。
- コード編集を選択します。
- インスペクションを選択します。
- TypeScript 言語レベルドロップダウンリストから ES6を選択します。
これらの手順を実行しても問題が解決しない場合は、TypeScript のフォーラムやコミュニティ Web サイトでサポートを依頼することをお勧めします。
- TypeScript 1.5 の機能を使用するには、JavaScript エンジンも ES6 をサポートしている必要があります。
- TypeScript 1.5 の機能は、Visual Studio 2015 以外の IDE でも使用できます。ただし、IDE によって設定方法が異なる場合があります。
TypeScript 1.5 では、ES6 のモジュール構文をサポートします。これにより、コードをよりモジュール化し、整理しやすくなります。
// greet.ts
export function greet(name: string): string {
return `Hello, ${name}!`;
}
// index.ts
import { greet } from './greet';
const name = 'TypeScript';
const message = greet(name);
console.log(message); // Hello, TypeScript!
非構造化代入
TypeScript 1.5 では、ES6 の非構造化代入構文をサポートします。これにより、オブジェクトや配列から値をより簡単に抽出できます。
const point = { x: 10, y: 20 };
const { x, y } = point;
console.log(x); // 10
console.log(y); // 20
スプレッド構文
const numbers1 = [1, 2, 3];
const numbers2 = [4, 5, 6];
const numbers = [...numbers1, ...numbers2];
console.log(numbers); // [1, 2, 3, 4, 5, 6]
for...of ループ
TypeScript 1.5 では、ES6 の for...of ループをサポートします。これにより、イテレータブル オブジェクトの要素をより簡単にループ処理できます。
const numbers = [1, 2, 3, 4, 5];
for (const number of numbers) {
console.log(number);
}
シンボル
TypeScript 1.5 では、ES6 のシンボルをサポートします。これにより、ユニークでグローバルにスコープされた値を作成できます。
const symbol1 = Symbol('mySymbol1');
const symbol2 = Symbol('mySymbol2');
console.log(symbol1 === symbol2); // false
計算プロパティ
const person = {
name: 'TypeScript',
age: 30,
getGreeting() {
return `Hello, my name is ${this.name} and I am ${this.age} years old.`;
}
};
console.log(person.getGreeting()); // Hello, my name is TypeScript and I am 30 years old.
let と const
TypeScript 1.5 では、ES6 の let と const キーワードをサポートします。これにより、ブロックスコープの変数と定数を宣言できます。
let message = 'Hello, world!';
console.log(message); // Hello, world!
const pi = 3.14159;
// pi = 3.141592653589793; // エラー: 'pi' は定数です
タグ付きテンプレート文字列
TypeScript 1.5 では、ES6 のタグ付きテンプレート文字列をサポートします。これにより、テンプレート文字列にリテラル値と式を埋め込むことができます。
const name = 'TypeScript';
const greeting = `Hello, ${name}!`;
console.log(greeting); // Hello, TypeScript!
tsconfig.json ファイルを使用して、TypeScript コンパイラ オプションを構成できます。このファイルで target
オプションを ES6
に設定すると、TypeScript 1.5 の機能が有効になります。
{
"compilerOptions": {
"target": "ES6"
}
}
Webpack または Gulp などのビルド ツールを使用する
Webpack または Gulp などのビルド ツールを使用して、TypeScript コードをコンパイルすることもできます。これらのツールは、TypeScript 1.5 の機能を有効にするオプションを提供している場合があります。
TypeScript コンパイラ CLI を使用する
TypeScript コンパイラ CLI を使用して、TypeScript コードをコンパイルすることもできます。CLI には、--target
オプションを使用して TypeScript 1.5 の機能を有効にするオプションがあります。
tsc --target ES6 mycode.ts
注意事項
- TypeScript 1.5 のすべての機能が、すべての IDE やビルド ツールでサポートされているわけではありません。
- 上記の方法を使用する場合は、ターゲット JavaScript エンジンも ES6 をサポートしていることを確認する必要があります。
typescript visual-studio-2015