typescriptでexport(importも) typeがうまくコンパイルされません。
Q&A
Closed
「export type」「それをimportをした」コードがうまくジャバスクリプトにコンパイルされなくて困っています。
タイプスクリプト学び始め、現在「図解!TypeScriptのツボとコツがゼッタイにわかる本「プログラミング実践編」」という書籍を参考に勉強しています。
本書に従ってシューティングゲームの作成をしている途中です。(VScodeを用いてコーディングしていて、tsconfig.jsonを使っています。)
タイプスクリプトで書いた「export type」、「import 〇〇 from "export typeのあるtsファイル"」が、それぞれコンパイルされると「export{};」「(importの部分はなにも反映されない)」となってしまいました。
エラーは一切出ません。
typeをexport・importする際に問題が起こったts,jsファイル、そしてtsconfig.jsonの設定を下記に記載します。
export typeをしているtsファイル
// 空間上の位置
export type Point3D = {
x: number; //x座標
y: number; //y座標
z: number; //z座標
}; //このexportはコンパイル後は空っぽ
// 平面上の位置
export type Point2D = Omit<Point3D, "z">;
// 平面上のサイズ
export type Size = Omit<Point3D, "z">;
// コンストラクタ引数
export type GameObjectParams = {
element: HTMLElement;
position: Point2D;
size?: Size;
};
↑のexport typeのtsファイルをコンパイル後のジャバスクリプト
export {};
これしか残ってない...。
typeをimportしているtsファイル
import { Point2D, Size, GameObjectParams } from "../utility/type.js";
export default class GameObject {
// プロパティ
protected readonly _element: HTMLElement; //HTML要素
protected readonly _size: Size;
protected _position: Point2D;
protected readonly _timerId: number;
//......以下略
importのあるtsファイルをコンパイルして出てきたjsファイル
export default class GameObject {
// プロパティ
_element; //HTML要素
_size;
_position;
_timerId;
......以下略
コンパイルしてできたジャバスクリプトからはimportが消えてます。
tsconfig.jsonの設定
{
"compilerOptions": {
"target": "es2022",
"module": "es2022",
"rootDir": "./src",
"outDir": "./dist",
//"isolatedModules": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"noUnusedParameters": true
}
}
原因の心当たり
・元々入れていた拡張機能をアンインストールしたり、インストールしてどうなるか実験していた。(1回全部無効にしたりしました。)
・コンパイルしたjsファイルの方を間違って編集して保存してしまった。
といったところです。
・コンパイルの仕方が間違っている?(「tsc」とコンパイルしています。ディレクトリはあってると思います。)
自分で試したこと
tsファイルを保存をきちんと確かめてから何度かコンパイルしたり、再起動して確かめてみたのですが、うまくいきません...。
最後に
長文失礼しました。言葉の定義の理解が曖昧で、間違った表現をしているかもしれません、その時は申し訳ないです。わからないとことがあれば、是非教えて頂きたいです。回答よろしくお願いします。