typescriptのインターフェースって???
インターフェースって何だろうって思って、chatgptに聞いてみた。
TypeScriptにおけるインターフェースとは、オブジェクトの形状を定義するための機能です。オブジェクトのプロパティ名やプロパティの型を指定することで、そのオブジェクトの形状を定義することができます。例えば、以下のように定義することができます。
interface Person {
name: string;
age: number;
}
この場合、Person
という名前のインターフェースを定義しています。このインターフェースは、name
という名前のプロパティがあり、そのプロパティの型はstring
であることを示しています。また、age
という名前のプロパティがあり、そのプロパティの型はnumber
であることを示しています。
これにより、Person
というインターフェースを使用することで、以下のようにオブジェクトの形状を指定することができます。
const person: Person = {
name: 'John',
age: 30
};
このように、インターフェースを使用することで、オブジェクトの形状を静的にチェックすることができます。また、複数のインターフェースを組み合わせて新しいインターフェースを作成することもできます。これにより、柔軟な型の定義が可能になります。
例えば、以下のように複数のインターフェースを組み合わせて新しいインターフェースを作成することができます。
interface Person {
name: string;
age: number;
}
interface Employee {
company: string;
position: string;
}
interface EmployeePerson extends Person, Employee {
id: number;
}
この場合、EmployeePerson
という名前のインターフェースを定義しています。このインターフェースは、Person
とEmployee
のプロパティを組み合わせ、新しいプロパティid
を追加しています。これにより、EmployeePerson
というインターフェースを使用することで、Person
とEmployee
のプロパティに加えて、id
プロパティを持つオブジェクトを作成することができます。
↑ここでextendsって突然出てきたけど、つまりはプロパティを継承して、それにプラスして何か別のプロパティも加えられるってことなんだろうね、多分。
employeeはcompanyとか、positionの値を持ってるんだと思う。
chatgptの出力が文字数で切れてしまって、コードが途中までしか送られない
文字数で切れる場合は、「続けて」と打てば良い、という記事を見つけたけど、これだとダメだった。
新しいコードになってしまう...
そんな時は、「今の説明が文字数で切れてるから、続けて」と打つと、続きから送ってくれます。
文字数という単語に反応するみたい。
paqlで、スーパーユーザーでログイン出来ない...
psqlで、なぜかスーパーユーザーがpostgresではなく他のロールになってしまって、
NoDatabaseErrorになる...。
だからdbを作成したいんだけども、
ALTER ROLE postgres WITH SUPERUSER;
としても
ERROR: must be superuser to alter superuser roles or change superuser attribute
と出てしまう...
つまりスーパーユーザーからでないと、他のロールにスーパーユーザーを付与したり、dbの権限委譲は出来ないんすね。
じゃあスーパーユーザーでログインして解決や!!!と思って、
としてもログイン出来ない。
詰んだ...
と思ったけど、そんな時でも大丈夫!
まず普通にpsql -U postgresでログインして、\connect - <ユーザー名>
でいけます!!!
あとからロールの切り替えもできるんすね。よかった〜( ^ω^ )
こちら参考記事です。