kaibukuroのブログ

HTML/CSS/JavaScript/PHPなどのアウトプット

TypeScriptの基本の備忘録

基本

  • TypeScriptは型を推論する。
  • const name: string = 'torahack';のようにして、型アノテーションを使い明示的な型を定義。

柔軟な型定義が可能。

例:

// 生まれの年は数字か文字列でも受け取れる変数
let birthYear: number | string;

valueが存在しないとエラーがでる時は、

Property 'value' does not exist on type 'Element’.

このように定義するとエラーは消える。

(document.querySelector('.hoge') as HTMLInputElement).value;

型を調べる

console.log(typeof(occDatas));
  • null: 値が欠如していることを表す。または、代入すべき値が存在しないため、値が無い。
  • undefinded: 初期化されておらず、値が割り当てられていないことを表す。または、値が代入されていないため、値がない。

できる限り、undefinedを使う。(nullは変数/定数があるのに値が無いなど、設計間違いが多い。)

  • anyはどんな型でも許容する=全く安全でない。
  • unknownは、どんな型になるか不明>、代入した値によって変化。使い所は、後から型定義したいデータがある時など。
  • どうしても使わなきゃいけない時は、anyじゃなく、unknownを使う。

色々な型

  • event.targetの型は、EventTarget
  • アンカー要素の型は、HTMLAnchorElement
const targetId = (e.target as HTMLAnchorElement).hash;

クエスチョンマーク

必須のプロパティじゃない時につける(オプショナル)
つまり、引数が省略可能になる。

  • 必ず引数の最後に書く
const test = (x:number, y?:number):void=>{
  console.log(x);
}
test(1);  //OK

Void

TypeScriptで戻り値がない関数の戻り値を型注釈するにはvoid型。

関数が何も返さない場合は、 : void をつけることで明示的に表現できます。

function print(message: string): void {
  console.log(message);
}
  • :never なら、決して戻ることのない戻り値。

エクスポート

// 変数、関数、クラスのエクスポート

  export const favorite = "小籠包";
  export function fortune() {
  const i = Math.floor(Math.random() * 2);
    return ["小吉", "大凶"][i];
  }
export class SmallAnimal {}

関数エクスポート(アロー関数)

export const tab = (wrapperId: string): void => {}

インポート

// 名前を指定してimport
import { favorite, fortune, SmallAnimal } from "./smallanimal";
// リネーム
import { favorite as favoriteFood } from "./smallanimal";