next@8.1.1
より@zeit/next-typescript
を使わずにいけるようになりました。Next プロジェクトルートにtsconfig.json
を起き以下を設定します。
{
"allowJs": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
}
これらは Next 側で強制的に上書きされてしまうので上記のまま使うようにします。
あとはそのままページを.tsx
で書いていくだけです。
いくつかの記法が使えない
以下の記法を使うとエラーになります。(babel
が対応してない?)
const enum
namespace
注意
declare module '<package-name>'
とそれを参照するtypesRoot
をtsconfig.json
に設定してしまうと、「そんなモジュールない」というエラーが起きてしまうようです。