boolean:真偽値number :数値string:文字列bigint:大きな整数symbol:一意の値undefined:値が定義されていないnull:値が存在しないany :全ての型を受け入れる、型の安全性が弱いunknown:全ての型を受け入れる、操作が制限されるため、型の安全性が保たれるvoid:値が存在しない、関数で何も返さない時などnever:決して何も返さない、エラーや無限ループの関数の戻り値など既存の型を新たな名前で定義する機能
typeで定義できる
type StringOrNumber = string | number; // string型もしくはnumber型が入る型
let val: StringOrNumber;
val = "hello"; // OK
val = 123; // OK