Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

インポート構文の統一 #3713

Open
acid-chicken opened this issue Dec 22, 2018 · 11 comments
Open

インポート構文の統一 #3713

acid-chicken opened this issue Dec 22, 2018 · 11 comments
Assignees
Labels
💚Refactor Rewriting code without changing behavior

Comments

@acid-chicken
Copy link
Member

acid-chicken commented Dec 22, 2018

Summary

現状

https://github.com/syuilo/misskey/blob/125849673a1aba46021852ee473d00f4520d1bd6/src/server/web/docs.ts#L5-L20


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@acid-chicken acid-chicken added the 💚Refactor Rewriting code without changing behavior label Dec 22, 2018
@AyaMorisawa
Copy link
Contributor

どのように統一するんですか?

@acid-chicken
Copy link
Member Author

とりあえずCommonJS構文は可能な限りES6構文に寄せるなりして統一した方が良いかと。

@mei23
Copy link
Contributor

mei23 commented Feb 3, 2019

https://github.com/syuilo/misskey/pull/4095#pullrequestreview-199348636

import ms = require('ms');
はTypeScript独自の構文でCommonJSでもES6でもなさそう
https://www.typescriptlang.org/docs/handbook/modules.htmlexport = and import = require()

なので、CommonJS / ES6 が混在しているわけではない

Visual Studio Codeで自動インポートがimport ms = require('ms');になるのは
おそらく型定義がexport = ms;になっているからで

When exporting a module using export =, TypeScript-specific import module = require("module") must be used to import the module.

ともあるので
このような場合はimport ms = require('ms');の方法を使わなければならないのではと思います。

@acid-chicken
Copy link
Member Author

型定義の書き方によって複数の import の書き方を課せられるぐらいなら型定義を変えた方が良さそうと思ってしまうのですが、どう思われますか。

@mei23
Copy link
Contributor

mei23 commented Feb 3, 2019

import * as ms from 'ms'; => import ms = require('ms'); に統一される形なので
複数のimportの書き方を強要されているわけではないと思います

@acid-chicken
Copy link
Member Author

そっちに統一する感じですか。

@mei23
Copy link
Contributor

mei23 commented Feb 3, 2019

import * as ms from 'ms'; => import ms = require('ms'); に統一される形なので

でも、module exportsにはimport * as ... from使えみたいに見えるから統一してもダメなのかも

@mei23
Copy link
Contributor

mei23 commented Feb 3, 2019

とりえあず、CommonJS と ES6 が混在しているわけではないのでどちらも許容でいいのではと
(const ... requireの構文を廃止するという目的でいいのでは)

@acid-chicken
Copy link
Member Author

だいたい統一できた。

@tamaina
Copy link
Contributor

tamaina commented Aug 30, 2019

CONTRIBUTING.mdに方針を書いておいてもらえると有難いかなと。

@KisaragiEffective
Copy link
Collaborator

const ident = require(moduleSpecifier)
を禁止することをCONTRIBUTING.mdに書いておいたらいいですか?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💚Refactor Rewriting code without changing behavior
Projects
Development

No branches or pull requests

5 participants