このIssueってfeature?enhancement?
このアカウントは https://misskey.io/@syuilo に引っ越します
---
Author and project lead of #misskey.
Misskeyの作者。主人→@AureoleArk
好きなこと: 近所を散歩すること、写真を撮ること、眠ること
最近はお菓子を食べることも好き
#misskey #藍ちゃファンクラブ #DTM #BitwigStudio #写真 #アズレン #わーーーーーーーーーーーーーーー #web
Because I can not understand English, I may not be able to answer questions.
このIssueってfeature?enhancement?
this という型を使えば良いように思えるかもしれないが(つまり this<T | null>)、ここで this というのはジェネリック適用後の型になっていると思われるので改めてジェネリックを適用することはできないっぽい
戻り値の型を 子クラス<T | null> にできれば解決しそうだけど、TypeScriptでそのようなことを実現する方法はなさそう
ここで厄介(?)なのは、値の null を許可するメソッドはそのクラス自体ではなく親の抽象クラスに実装されているということだ。従って親クラスでそのメソッドの戻り値の型を Parent<T | null> なんてしてしまうと、メソッドチェーンの途中で型が親クラスに変わってしまう。
メソッドチェーンしていく中で、値の null を許可するメソッドを呼び出したら、それ以降のメソッドチェーンでは値の型を null許容 に変化させなければならない。
より具体的にいうとあるジェネリッククラスが、あるメソッドを呼び出すことで自分自身のジェネリックパラメータを変化させることができるか?という問題である
もちろんちゃんと T は定義されている
抽象クラス:
abstract class Parent {
public get(): ??? {
return this;
}
}
ここで ??? の部分をどう型注釈したらいいかという問題が生じる
おそらくこのIssueが関連している
https://github.com/Microsoft/TypeScript/issues/275
例えば抽象クラスが自分自身のインスタンスを返すメソッドを実装しているとする(つまりメソッドチェーンができる)ここでそのメソッドの返り値を型注釈したいとすればどうすればいいだろうか?
この抽象クラスを返り値の型としては使えない。なぜならそうしてしまうとこの抽象クラスを継承したFooクラスからこのメソッドを呼び出すと、Fooクラスのインスタンスが返ってくる型を期待するけど実際には抽象クラスのインスタンスの型になってしまう
ビルドが実際には複数に分かれていたりビルド時以外にもlocalesが参照される時があって、そういうことも考慮しないといけない(そうしないと実際には使われているのに未使用と判断される)
あ、今お見せしたドキュメントは crowdin を始める前なので若干情報が古いですね。
locale/ja.yml のみの記述で大丈夫です。
当該の箇所を%i18n:@is-locked%
みたいに書き換えていきます
https://github.com/syuilo/misskey/blob/master/docs/translate.en.md
よくある間違いとしては、MongoDB管理者としてのユーザーとMisskeyDB管理者としてのユーザーの二つのユーザーを作る必要があることですかね(Misskeyの設定ファイルには後者の情報を設定する)
修正されるまでは、
https://github.com/syuilo/misskey/releases/tag/4.15.0
時点のコードを利用していただけると
今アイパッヨなので長文の説明が難しいんですが https://qiita.com/tamaina/items/d7c1a758cb6c9d3eaaa5 や https://qiita.com/motiakoron/items/e39320b5f66f07bcf9fb のドキュメントが詳しいです
昔
const isValid = it(x).must.be.a.string().required().check();
現在
const isValid = $.str.ok(x);