LoginSignup
4
3

More than 5 years have passed since last update.

自分用メモ: Typescriptの!と?とnullの使い分け

Posted at

!

ライブラリとかによって絶対に挿入されるパラメータにつける。
リンク

所感

Vue.js2.5.16の$refsとかに重宝しそう。
サンプル

@Component
export default class LoginPage extends Vue {
  public $refs!: {
    form: VForm,
  }
}

これで$refsに型がついた。

? 呼称: Optional Parameters

これは任意引数とかによく使う。
挿入されなかったらundefinedになる。
lastName: string | nullと意味合いは全く違う

サンプル

function buildName(firstName: string, lastName?: string) {
    if (lastName)
        return firstName + " " + lastName;
    else
        return firstName;
}

let result1 = buildName("Bob");                  // works correctly now
let result2 = buildName("Bob", "Adams", "Sr.");  // error, too many parameters
let result3 = buildName("Bob", "Adams");         // ah, just right

?と | nullの使い分け

デフォルト値として使うならany | nullとか。?ではない。

所感

コード直さないとなぁ。。。

4
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3