アカウント名:
パスワード:
TypeScriptはよく知らないんですが例えば(ちょっともう無茶苦茶な文法になってると思うけども)
#------------------------------class Foo { function boo() { } # function qoo() { } # 不要なので消したら・・・}
function fn(foo: Foo) { foo.qoo(); # ここのせいでコンパイルができない・・昨日まではコンパイルできたのに!}#------------------------------
となるって事ですよね?コンパイルできない以上はテストも実行できないわけだけど、物凄く不便じゃない?
# こういう時の自分は、重大な勘違いをしているw
いや、コンパイル出来ない = 文法エラー = 実行前にエラーとなる箇所がわかる訳で…それが静的型付け言語の利点ですよね
「コンパイルできない以上はテストも実行できない」と言いますが、そもそもコンパイルを通らないコードの時点でテストする価値は無いです
ただ、例のようなプログラムは動的型付けの言語でも、コンパイル形式ならコンパイルの時点でエラーになる処理系は多い。なぜなら、qooという名前の変数(もしくは関数)は存在していないから。
まあ、静的型付けの言語の方がコンパイル時にエラーを出していくれることが多いから、助けられている気分にはなるけど、実際に問題になるのは、予期していない値が発生した場合。正の整数を期待していたのに負の整数が来ちゃった場合とか。
それを補完するのがテストでしょ。
スレ主は動的言語の使いすぎで大分本末転倒してるけど。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
静的型の利点がよくわからない (スコア:0)
TypeScriptはよく知らないんですが例えば
(ちょっともう無茶苦茶な文法になってると思うけども)
#------------------------------
class Foo {
function boo() { }
# function qoo() { } # 不要なので消したら・・・
}
function fn(foo: Foo) {
foo.qoo(); # ここのせいでコンパイルができない・・昨日まではコンパイルできたのに!
}
#------------------------------
となるって事ですよね?
コンパイルできない以上はテストも実行できないわけだけど、物凄く不便じゃない?
# こういう時の自分は、重大な勘違いをしているw
Re:静的型の利点がよくわからない (スコア:1)
いや、コンパイル出来ない = 文法エラー = 実行前にエラーとなる箇所がわかる訳で…それが静的型付け言語の利点ですよね
「コンパイルできない以上はテストも実行できない」と言いますが、そもそもコンパイルを通らないコードの時点でテストする価値は無いです
Re: (スコア:0)
ただ、例のようなプログラムは動的型付けの言語でも、コンパイル形式ならコンパイルの時点でエラーになる処理系は多い。なぜなら、qooという名前の変数(もしくは関数)は存在していないから。
まあ、静的型付けの言語の方がコンパイル時にエラーを出していくれることが多いから、助けられている気分にはなるけど、実際に問題になるのは、予期していない値が発生した場合。正の整数を期待していたのに負の整数が来ちゃった場合とか。
Re: (スコア:0)
それを補完するのがテストでしょ。
スレ主は動的言語の使いすぎで大分本末転倒してるけど。