TypeScript の bool や 인터페이스 を動かしてみる
12081 단어 typescript
参考
手を動かしながら学ぶ TypeScript
by SmartHR
https://www.amazon.co.jp/%E6%89%8B%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%AA%E3%81%8C%E3%82%89%E5%AD%A6%E3%81%B6-TypeScript-%E6%B8%A1%E9%82%89%E6%AF%94%E5%91%82%E6%A8%B9-ebook/dp/B09KZJXDN1
문자열, 숫자
자명.
===
문자열 와 숫자 의 목적어 を作る
const dog : {
name: string,
age: number,
} = {
name: 'Aki',
age: '300',
}
ts での object はこうして初期化ができる.
obj.ts:15:3 - error TS2322: Type 'string' is not assignable to type 'number'.
15 age: '300',
~~~
obj.ts:12:3
12 age: number,
~~~
The expected type comes from property 'age' which is declared here on type '{ name: string; age: number; }'
違う형 のデータを入れると、ちゃんと教えてくれる.
부울 -- '', 0, 정의되지 않음, は入らない。
const isOpen: boolean = true
boolean 型は 참 인가 거짓 が入る.
tsc bool.ts
bool.ts:3:7 - error TS2322: Type 'string' is not assignable to type 'boolean'.
3 const empty: boolean = ''
~~~~~
bool.ts:4:7 - error TS2322: Type 'number' is not assignable to type 'boolean'.
4 const zero: boolean = 0
~~~~
bool.ts:5:7 - error TS2397: Declaration name conflicts with built-in global identifier 'undefined'.
5 const undefined: boolean = undefined
~~~~~~~~~
bool.ts:5:28 - error TS2448: Block-scoped variable 'undefined' used before its declaration.
5 const undefined: boolean = undefined
~~~~~~~~~
bool.ts:5:7
5 const undefined: boolean = undefined
~~~~~~~~~
'undefined' is declared here.
Found 4 errors.
空の文字列、数値のゼロ、未定義는 false と思われがちだが
ts では 부울 にそれらは入れられない.
配列
const list: number[] = [0, 1, 2, ]
list.push(99)
list.push('text')
配列인가 配列でないかではなく
数値の配列か、文字列の配列かなどを設定できる.
tsc arr.ts
arr.ts:3:11 - error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'.
3 list.push('text')
~~~~~~
数値の配列に文字列を追加するとが出る.
const numList: Array<number> = [1, 2, 3, false, ]
number[]는 Array という書き方もできる.
null -- 엄격한 でも 入る
const text: string = 'text'
const undefString: string = undefined
const nullString: string = null
文字列型の変数に undefined と null を入れるCODEを作る
tsconfig.json/compileOptions/strict/strictNullChecks
{
"compilerOptions": {
"target": "es5",
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
"strictNullChecks": true, /* Enable strict null checks. */
ここの設定を true にしていれば入れないはずだが...
通ってしまう.謎.
let text: string = 'text'
text = undefined
text = null
代入でも通ってしまう.
strict が false だと null の vscode の警告は消える.
関数
TS で関数かくと
この関数が文字列型で、引数も文字列型で、戻り値も文字列型で、 って三箇所書く必要があ る
しかし、인터페이스 や형 を型引数としてとれば読みやすくなる
https://qiita.com/NeGI1009/items/a98c6a76b0c4f3bc18b3#%E9%96%A2%E6%95%B0%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%89
type hoge:string;
export const foo:hoge => { ... }
こんな風に 関数名:関数の型 として使える
읽기 전용
TS 再代入は防げない
しかしこれを設定すれば防げる
const woman : {
readonly name: string,
age: number,
} = {
name: 'Aki',
age: 25,
}
woman.name = 'Teru'
콘파이르스루와
tsc ro.ts
ro.ts:20:7 - error TS2540: Cannot assign to 'name' because it is a read-only property.
20 woman.name = 'Teru'
읽기 전용입니다.
===
인터페이스 -- 개체 で使える型のProttype。
interface Person {
name: string,
power: number,
}
const kaede: Person = {
name: 'kaede',
power: 70,
}
型のクラスを作って、それを使って変数を定義できる.
function App() {
interface cat {
color: string;
weight: number;
}
const Tama:cat = {
color: 'white',
weight: 5000,
}
return (
<div>
<h2>{Tama.weight}</h2>
</div>
);
}
こうやって 인터페이스 使う型たちを定義して
오브제크트(をそ)의 인터페이스 の型にそって作成して
작성사레타오브제크트에 악세스스루.
これが基本的な流れ.
유형 오브제크트
https://zenn.dev/luvmini511/articles/6c6f69481c2d17#2-3.-%E6%8B%A1%E5%BC%B5
基本的な使い方は 인터페이스 と同じ.
中身を追加できない、인터페이스 より厳密な型定義.
MISIDE違うものを後から入れることがないのがbaggを産みにくいらしい.
現在の使使っている
Reference
이 문제에 관하여(TypeScript の bool や 인터페이스 を動かしてみる), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/ts-xing-woshi-su-1nk5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)