yurihyp
@yurihyp (yu ryp)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Typescriptで型付時に:(コロン)がunexpected Token ':'になる

困っていること

typescriptで静的型付け用のコロンがunexpected token ':'と怒られてしまいます。
解決法を教えてください。

main.ts
var message: string = 'Hello, World!';
console.log(message);

enum Signal {
    Red = 0,
    Blue = 1,
    Yellow =2
}

let result: Signal
console.log(Signal[2])
node main.ts
let message: string = 'Hello, World!';
           ^

SyntaxError: Unexpected token ':' 

at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1032:15)
    at Module._compile (node:internal/modules/cjs/loader:1067:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47

typescriptのバージョンはこちらです。

tsc --version 
Version 4.6.4

自分で試したこと

以下のサイトで解決法を調査
https://stackoverflow.com/questions/48664482/syntax-error-typescript-unexpected-token
⇨ 片付を動的にすれば良いと言っているので

var message: string = 'Hello, World!';
↓
var message = 'Hello, World!';

に変更。

今後はこう怒られてしまう。

enum Signal {
^^^^

SyntaxError: Unexpected reserved word

typescriptは型付を静的にできると思っているのですが、そもそもなぜこのようなエラーが発生してしまうのでしょうか?

0

1Answer

nodeは何もしないとtypescriptを動かしてくれないです.
tscでトランスパイルするかts-nodeを使うことができます.

> npx tsc && node main.js #トランスパイルされたmain.jsを指定する

もしくは

> npx ts-node main.ts #パッケージts-nodeが必要
4Like

Your answer might help someone💌