chan_tameのブログ

プログラミングで詰まった点を記録していきます!

typescriptのインターフェースって???

インターフェースって何だろうって思って、chatgptに聞いてみた。

 

TypeScriptにおけるインターフェースとは、オブジェクトの形状を定義するための機能です。オブジェクトのプロパティ名やプロパティの型を指定することで、そのオブジェクトの形状を定義することができます。例えば、以下のように定義することができます。

typescript
interface Person { name: string; age: number; }

この場合、Personという名前のインターフェースを定義しています。このインターフェースは、nameという名前のプロパティがあり、そのプロパティの型はstringであることを示しています。また、ageという名前のプロパティがあり、そのプロパティの型はnumberであることを示しています。

これにより、Personというインターフェースを使用することで、以下のようにオブジェクトの形状を指定することができます。

css
const person: Person = { name: 'John', age: 30 };

このように、インターフェースを使用することで、オブジェクトの形状を静的にチェックすることができます。また、複数のインターフェースを組み合わせて新しいインターフェースを作成することもできます。これにより、柔軟な型の定義が可能になります。

例えば、以下のように複数のインターフェースを組み合わせて新しいインターフェースを作成することができます。

typescript
interface Person { name: string; age: number; } interface Employee { company: string; position: string; } interface EmployeePerson extends Person, Employee { id: number; }

この場合、EmployeePersonという名前のインターフェースを定義しています。このインターフェースは、PersonEmployeeのプロパティを組み合わせ、新しいプロパティidを追加しています。これにより、EmployeePersonというインターフェースを使用することで、PersonEmployeeのプロパティに加えて、idプロパティを持つオブジェクトを作成することができます。

 

↑ここでextendsって突然出てきたけど、つまりはプロパティを継承して、それにプラスして何か別のプロパティも加えられるってことなんだろうね、多分。

 

employeeはcompanyとか、positionの値を持ってるんだと思う。

chatgptの出力が文字数で切れてしまって、コードが途中までしか送られない

文字数で切れる場合は、「続けて」と打てば良い、という記事を見つけたけど、これだとダメだった。

 

新しいコードになってしまう...

 

そんな時は、「今の説明が文字数で切れてるから、続けて」と打つと、続きから送ってくれます。

 

文字数という単語に反応するみたい。

railsの中間テーブルを用いた処理について

railsタグ機能付けたいんだけど、どうやら中間テーブルを作る必要があるみたい。

 

今回はuserと、tagが多対多の関係(userも複数、tagも複数ある)なので、そういうときは中間テーブルを作るんだと。

 

このqiitaの記事、グループとuserでやってるけど、自分のにも応用できそう。

 

tagは一種のグループだから、tagとそれに属するuserみたいな感じでいけるか...?

 

 

qiita.com

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 <ユーザー名>

としてもログイン出来ない。

 

詰んだ...

 

と思ったけど、そんな時でも大丈夫!

 

まず普通にpsql -U postgresでログインして、\connect - <ユーザー名>

でいけます!!!

 

あとからロールの切り替えもできるんすね。よかった〜( ^ω^ )

 

こちら参考記事です。

mam-mam.net