Skip to content

Commit 77200d9

Browse files
committed
いくつかの型サンプルを追加
1 parent 011612b commit 77200d9

File tree

5 files changed

+90
-0
lines changed

5 files changed

+90
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
type Item = {
2+
name: string,
3+
price: number
4+
};
5+
6+
const getTotal = (items: Item[]): number => {
7+
let total: number = 0;
8+
9+
for (let item of items) {
10+
total += item.price;
11+
}
12+
13+
return total;
14+
}
15+
16+
let total: number = getTotal(
17+
[
18+
{name: 'Cherry gum', price: 0.10},
19+
{name: 'Mint gum', price: 0.10},
20+
{name: 'Strawberry gum', price: 0.10}
21+
]
22+
);
23+
24+
console.log(total)
25+
console.log(total == 0.30)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
declare function secondsSinceLastComment(userId: string): number;
2+
declare function postComment(comment: string, userId: string): void;
3+
4+
const commentGatekeeper = (comment: string, userId: string): boolean => {
5+
if ((comment == "") || (secondsSinceLastComment(userId) < 10))
6+
return false;
7+
8+
postComment(comment, userId);
9+
10+
return true;
11+
}
12+
13+
console.log(commentGatekeeper('so good', '12'));
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const fs = require("fs");
2+
3+
4+
const raise = (message: string): never => {
5+
console.log(`Error "${message}" raised at ${new Date()}`);
6+
throw new Error(message);
7+
}
8+
9+
const readCOnfig = (configFile: string): string => {
10+
if (!fs.existsSync(configFile))
11+
raise(`Configration file ${configFile} missing`);
12+
13+
return fs.readFileSync(configFile, "utf-8");
14+
}
15+
16+
console.log(readCOnfig('test.ini'))
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
declare const UnitType: unique symbol;
3+
4+
class Unit {
5+
[UnitType]: void | undefined;
6+
static readonly value: Unit = new Unit();
7+
private constructor() {};
8+
}
9+
10+
const greet = (): Unit => {
11+
console.log('Hello');
12+
return Unit.value;
13+
}
14+
15+
console.log(greet());
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const first = <T>(range: T[], p: (elem: T) => boolean): T | undefined => {
2+
for (let elem of range) {
3+
if (p (elem)) {
4+
return elem;
5+
}
6+
}
7+
}
8+
9+
const findFirstNegativeNumber = (numbers: number[]): number | undefined => {
10+
return first(numbers, n => n < 0);
11+
}
12+
13+
const findFirstOneCharacterString = (strings: string[]): string | undefined => {
14+
return first(strings, str => str.length == 1);
15+
}
16+
17+
const numbers = [1, -2, 3, -4, 5]
18+
console.log(findFirstNegativeNumber(numbers));
19+
20+
const strings = ['aaa', 'dfjdf', 'd', 'dfd', 'a', 'ddd'];
21+
console.log(findFirstOneCharacterString(strings));

0 commit comments

Comments
 (0)