選考直結型ガクセイハッカソン 2025.03の開催レポート
2025-04-14 公開
2022-10-04 公開
Dartは、Googleが開発しているプログラミング言語です。Dartを用いたFlutterというモバイルアプリのフレームワークが有名ですが、今回はWebエンジニア向けに、Dartの特徴をJavaScript、TypeScriptと比較しながら解説します。
Dartの特徴を4つ紹介します。
Dartは静的型付け言語です。TypeScriptでの型指定に似た構文で変数や引数の型を指定します。
// JavaScriptの変数定義(型なし)
let name = 'Alice';
const age = 25;
// Dartの変数定義(型あり)
String name = 'Alice';
int age = 25;
Dartではvarを使って型推論ができます。TypeScriptと同様に、型を明示せずに書くこともできます。
// JavaScriptの変数定義(型なし)
let name = 'Alice';
let age = 25;
// Dartの変数定義(型推論)
var name = 'Alice';
var age = 25;
Dartはnull安全です。Dartでは、デフォルトでnullを許可せず、nullを許可する場合は?を付けます。TypeScriptのオプショナルと似た概念です。
// JavaScriptのnull許容
let name = null;
// Dartのnull安全
String? name = null; // nullを許可する場合は?を付ける
Dartの非同期処理は、JavaScriptのasync/awaitと同様の構文で書けます。
// JavaScriptの非同期処理
async function fetchData() {
const data = await fetch('https://example.com');
return data;
}
// Dartの非同期処理
Future<String> fetchData() async {
final data = await http.get('https://example.com');
return data.body;
}
JavaScriptでは、論理値に変換するとfalseとして扱われる値がいくつかあります。
// JavaScriptのfalsy値の例
if (!0) console.log('0はfalsy');
if (!'') console.log('空文字はfalsy');
if (!null) console.log('nullはfalsy');
// Dartでは明示的にboolを使う
if (0 == 0) print('Dartでは0はboolではない');
このように、JavaScriptにおいて論理値に変換するとfalseとして扱われる値は、全部で8種類あります。
https://developer.mozilla.org/ja/docs/Glossary/Falsy
void main() {
String message = 'Hello, Dart!';
print(message);
}
今回は、WebエンジニアがDartを学ぶ際に知っておきたい特徴を、JavaScript・TypeScriptと比較しながら解説しました。