[レベル1-タスク4]第1段階自動販売機タスクフィードバック
1級自動販売機ミッション1段階PR
Typescriptは初めてです.
非常に難しいところに赤い下線がたくさんあります
これまでJSとして開発された際、「多くのエラー処理を見逃しているでしょう.😢」と感じました.
TypeScriptの必要性を感じました
これから勉強する山🗻また一つTypeが長くなって狭くなっていく過程が面白かったので楽しかったです
フィードバックを見に行きましょう.
Throw/Returnの違いを知っています. forEach文内部
foreachドア内部強制
でも3つの方法があります
try catch文でforEachを回転させ、throwを強制してループから飛び出します.
Array.いくつかの()メソッドの使用方法 return true: break return false: continue
Array.event()メソッドの使用方法 return true: continue return false: break
1)基本
👇 次のコードを追加したらどうなりますか?エラーが発生します.
👇 次のようにするとobj内部のキー値しか持ってこないのでしょうか?
結論:予期せぬ状況に応じて誤った比較を行い、コードの可読性を高めるために
今回のミッションでDeep Copyを実現しました しかし,最初にオブジェクトの深さを第1段階に保つ設計も考えられる.
👉 なぜなら、パフォーマンスの問題(Deep Copy自体が高価)
Lv1. Document for TS Lv2. Interface for TS Lv3. Safety Application for TS TSを使っている理由はLv 3に行かないと分からないからです
どうしていつも日本に行きたいですか.
一言で言えば,ユーザの入力値は信用できない.
多くの人が関数の戻り値をvoidに設定します.(まずは私から…)
Neverを考えてください!
リロードまたはオブジェクトとして使用します.
タイプスクリプトタイプを外部に宣言します.(type.tsを作成して管理しましょう!)
T, I PrefixタイプT インタフェースにIが追加されました. しかし、彼はマソ+私たちのコーチもマソを使うことに反対しないと言った.
NAMEの判断は自分で感じて
タイプは再利用しましょう.
anyと書けばJavaScriptと変わらない
パラメータは、return typeの顔を説明します.
戻りタイプがない
❗いったいあなたの関数、方法は一つのことしかしませんか?
❗タイプスクリプトを作成した場合は、メソッド内で大量の検証を消去する必要があります!
サードパーティ:パラメータを動的に受信する感覚
今回のフィードバックは大体3種類あります.
名前を付ける
ルータ上でルーティング機能を完了する(ここにマウント)
不必要な状態を作るな
関数またはメソッドは、動詞型またはコマンド型から開始します.
Typescriptは初めてです.
非常に難しいところに赤い下線がたくさんあります
これまでJSとして開発された際、「多くのエラー処理を見逃しているでしょう.😢」と感じました.
TypeScriptの必要性を感じました
これから勉強する山🗻また一つTypeが長くなって狭くなっていく過程が面白かったので楽しかったです
フィードバックを見に行きましょう.
💪 JS
forEach
return true, false
はcontinue
を表す.foreachドア内部強制
break는 없어요
.でも3つの方法があります
try catch文でforEachを回転させ、throwを強制してループから飛び出します.
Array.いくつかの()メソッドの使用方法
Array.event()メソッドの使用方法
Object.prototype.hasOwnProperty.call() vs hasOwnProperty()
1)基本
hasOwnProperty()
はプロトタイプチェーンをチェックせず,そのオブジェクト自身が定義したプロトタイプのみを判断する.obj.b = 2;
Object.prototype.c = 3;
obj.b; // 2
obj.c; // 3
obj.hasOwnProperty("b"); // true
obj.hasOwnProperty("c"); // false
私はプロトタイプチェーンで追加のプロトタイプを作成していません.これからも計画していません.私は確信しています.👉 大丈夫ですか?const obj = {
a: 1,
b: 2,
c: 3
};
const copy = {};
let sum = 0;
for (let key in obj) {
sum += copy[key] = obj[key] * 2;
}
表面的には安全なコードですが、将来に対応できないコードです.👇 次のコードを追加したらどうなりますか?エラーが発生します.
Object.prototype.toText = function() {...}
コードの実行環境やプロトタイプへのアクセスと拡張を自分で仮定することはできません.👇 次のようにするとobj内部のキー値しか持ってこないのでしょうか?
for (let key in obj) {
if (obj.hasOwnProperty(key)) { // 프로퍼티로 정의한 친구들은 제외!
sum += copy[key] = obj[key] * 2;
}
}
🤔 プロフェッショナルと定義されている友人たちも意図的に接近している場合は、Object.prototype.hasOwnProperty.call()
を使用することもできます.結論:予期せぬ状況に応じて誤った比較を行い、コードの可読性を高めるために
hasOwnProperty
を考慮すべきである.Deep Copy vs Object Shape of One Depth
👉 なぜなら、パフォーマンスの問題(Deep Copy自体が高価)
💪 TS
私たちはどのように使っていますか?
どうしていつも日本に行きたいですか.
一言で言えば,ユーザの入力値は信用できない.
考えない
多くの人が関数の戻り値をvoidに設定します.(まずは私から…)
Neverを考えてください!
void는 null 혹은 undefined 값의 반환을 허용
never는 허용하지 않아요.
overload
リロードまたはオブジェクトとして使用します.
import type
タイプスクリプトタイプを外部に宣言します.(type.tsを作成して管理しましょう!)
ミーティングの名前付け
T, I Prefix
NAMEの判断は自分で感じて
回収タイプ
タイプは再利用しましょう.
任意の順序を放棄
anyと書けばJavaScriptと変わらない
関数の形状についても説明します。
パラメータは、return typeの顔を説明します.
戻りタイプがない場合は、
戻りタイプがない
void()
では、ほとんどの場合機能しません.❗いったいあなたの関数、方法は一つのことしかしませんか?
Genericタイプの縮小
❗タイプスクリプトを作成した場合は、メソッド内で大量の検証を消去する必要があります!
サードパーティ:パラメータを動的に受信する感覚
<E extends Element>
💪 コメンテーターからのフィードバック
今回のフィードバックは大体3種類あります.
名前を付ける
ルータ上でルーティング機能を完了する(ここにマウント)
不必要な状態を作るな
関数の名前付け
moneyToCoin
converMoneyToCoin
よりいいでしょう~Reference
この問題について([レベル1-タスク4]第1段階自動販売機タスクフィードバック), 我々は、より多くの情報をここで見つけました https://velog.io/@jhy979/레벨1-미션4-1단계-자판기-미션-피드백テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol