TypeScript
VSCode

WebShareAPIを使う際のエラーを消す

VSCodeのTypeScriptでWebShareAPIを使おうとすると、こんなエラーになりますよね。

スクリーンショット 2017-12-31 20.04.24.png

[ts] プロパティ 'share' は型 'Navigator' に存在しません。

これはTypeScriptのNavigatorクラスにshareメソッドがまだ定義されてないからなんです。

これを回避するのに使う手は2つ!

簡単な方法はこれ。

スクリーンショット 2017-12-31 20.12.44.png

navigatorをanyでラップしてあげる。

これでもいいんだけど、TypeScriptなやり方でちゃんと解消したい、、、
という場合は型定義ファイルに以下を追加してあげる。

declaration.d.ts
type ShareOptions = { title: string; text: string; url: string };
interface Navigator {
  share: (options: ShareOptions) => Promise<void>;
}

これでNavigatorにshareというメソッドがあると明示されたのでエラーが消えます。

スクリーンショット 2017-12-31 20.22.53.png

(^^)y