Flow入門教程
13389 ワード
目次インストール は を使用します.タイプの注釈 flow開発ツールプラグイン タイプの注釈を削除する 環境API を実行する.
Flow:JSのタイプ検査器
インストール を初期化する. をインストールします.
使用
コメント文 . タイプコメント
Flow公式文書タイプ:https://flow.org/en/docs/types 第三者文書:https://www.saltycrane.com/cheat-sheets/flow-type/latest変数 配列タイプ オブジェクトタイプ 関数タイプ 特殊タイプ anyは弱いタイプであり、そのタイプが特定されない場合は、任意のタイプとして動作することができる. mixedは強いタイプで、そのタイプを明確にしてからしか を使用できません.
flow開発ツールプラグイン Flow Language Support--VCode 他のエディタ:https://flow.org/en/docs/editors タイプコメントを削除 flow-remove-types インストール は を使用する. babel インストール は を使用します.
プロジェクトルートディレクトリにbabelプロファイルを追加します.babelrc
ブラウザが提供するBOM DOMなど、nodeが提供する各種モジュール
Flow:JSのタイプ検査器
インストール
yarn init --yes
package.json yarn add flow-bin --dev
flow 使用
コメント文
@flow
でマークする// @flow
function sum(a: number, b: number){
return a+b
}
yarn flow init
flowを初期化するプロファイルyarn flow
は、flowを使用してコードをタイプチェックするyarn flow stop
Flow Language Supportサービスを停止するFlow公式文書タイプ:https://flow.org/en/docs/types 第三者文書:https://www.saltycrane.com/cheat-sheets/flow-type/latest
//
const a:string = 'abc'
const b:number = Infinity //NaN 100
const c:boolean = true //false
const d:null = null
const e:viod = undefined
const f:symbol = Symbol()
// number
const arr1:Array = [1, 2, 3]
const arr2:number[] = [1, 2, 3]
// --
const arr3:[string, number] = ['foo', 100]
const obj1:{
foo:string, bar:number} = {
foo: 'string',
bar: 100
}
//
const obj2:{
foo?:string, bar:number} = {
bar: 100
}
//
const obj3:{
[string]:string} = {
}
obj3.key1 = 'value1'
obj3.key2 = 'value2'
//
function sum (a:number, b:number){
return a+b
}
//
function foo():number {
return 100
}
function faa():viod {
//
}
//
function fbb(callback:(string, number) => viod){
callback('abc', 100)
}
fbb(function(str, num){
})
//
const a:'foo' = 'foo' //a 'foo'
//
const b:'success'|'warning'|'danger' = 'success'
const c:string|number = 'string' //100
// type
type StringOrNumber = string | number
const d:StringOrNumber = 'string' //100
//Maybe : | null | undefined
const foo:?numbet = null //100 undefined
// mixed any
function passMixed (value:mixed){
if(typeof(value) === 'string'){
value.substr(1)
}
if(typeof(value) === 'number'){
value * value
}
}
function passAny (value:any){
value.substr(1)
value * value
//
}
// value
passMixed('string')
passMixed(100)
passAny('aaa')
passAny(111)
mixedとanyの違い:flow開発ツールプラグイン
yarn add flow-remove-types --dev
yarn flow-remove-types -d
yarn add @babel/core @babel/cli @babel/preset-flow --dev
プロジェクトルートディレクトリにbabelプロファイルを追加します.babelrc
{
"presets": ["@babel/preset-flow"]
}
実行コマンドyarn babel src -d dist
環境APIを実行するブラウザが提供するBOM DOMなど、nodeが提供する各種モジュール
//document getElementById
// HTMLElement , null
const element:HTMLElement|null = document.getElementById('app')