typescript - texto - uso del punto
Cuándo usar un punto y coma en TypeScript? (4)
Simplemente prefija líneas que comiencen por [
, (
, o `con un punto y coma y usted es (casi) dorado *
Usando el mismo ejemplo como otra respuesta:
var x = { xx : "hello", yy : "world"}
(function () {
console.log("Hello World");
})();
Agregamos un punto y coma de acuerdo con esta regla:
var x = { xx : "hello", yy : "world"}
;(function () {
de lo contrario, javascript piensa que estamos intentando call(
alguna función o reference[
alguna matriz. Esto es más simple, más fácil de seguir y visualmente más fácil de detectar. También necesita puntos y comas for
bucles, pero el método .forEach
es más limpio y método más fácil. Con seguridad diría que esta regla cubre el 99% de los escenarios que necesita para usar un punto y coma en javascript / texto mecanografiado.
Siguiendo este método, es importante asociar una nueva línea con la terminación de una declaración.
* Esto devuelve el venerable undefined
:
return
7
Después de regresar, hay una nueva línea, y el navegador inserta un punto y coma, terminando la declaración de esta manera:
return; // this will return undefined.
7
Haz esto en su lugar:
return (
7
)
Javascript es realmente muy inteligente con punto y coma, hay una paren abierta, por lo que no se inserta ningún punto y coma hasta que se encuentre la paren de cierre.
Si tiene el hábito de poner punto y coma en todas partes y no saber exactamente cuándo se necesitan, puede leer esto para una explicación de varias páginas: http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
Admito que la mayoría de la gente seguirá arrojando semiconsoldos al final de cada línea, pero si eres nuevo y estás aprendiendo, este es el mejor enfoque.
Sé que JavaScript (y, por lo tanto, TypeScript) admite la omisión de puntos y comas en muchos casos. Sin embargo, quiero agregar puntos y comas para que no sean ambiguos, como se sugiere en TypeScript Deep Dive.
Sin embargo, no puedo encontrar una guía que enumere dónde usar el punto y coma. Por ejemplo, mira el siguiente código
class Person {
private name: string; // A
constructor(name: string) {
this.name = name;
}; // B
public add = () => {
return "C";
}; // C
}; // D
Estoy bastante seguro de usar un punto y coma en A. Pero, ¿qué pasa con B , C , D y todos los demás casos que no cubre mi ejemplo?
Editar : Debo añadir que no estoy preguntando dónde omitir el punto y coma, pero dónde agregarlos. Una respuesta como siempre no satisface mis necesidades ya que no puedo agregar una ;
después de public
. Quiero saber exactamente dónde poner el punto y coma.
TL; DR: siempre
Tenga en cuenta: mejor prevenir que lamentar
Probablemente deberías colocarlos todo el tiempo. No necesita colocarlos para que TypeScript funcione, pero evitará errores al hacerlo. ASI (Automatic Semicolon Insertion) funciona bastante bien la mayor parte del tiempo, pero no siempre. ¿Realmente quiere encontrarse con un problema solo porque no puso un punto y coma, y sigue pasando por alto el error? (Dependiendo de su IDE, el error podría ser capturado). Pero considere este Javascript perfectamente válido.
var x = { xx : "hello", yy : "world"}
(function () {
console.log("Hello World");
})();
Esto es javascript válido ( y por lo tanto mecanografía válida ). Este código realmente dará un error. Uncaught TypeError: (intermediate value)(intermediate value) is not a function(…)
.
Lo cual podría evitarse simplemente colocando un punto y coma después de la primera línea. No lo necesita allí, y si la siguiente línea no era esa línea de función, probablemente funcionaría correctamente. ¿Pero quieres correr ese riesgo? Parece que correr el riesgo de errores sobre un personaje extra no me lo merece. Además, después de un tiempo, te acostumbras a colocar puntos y comas al final de una línea;
Piensa en tus colegas
Otra razón por la que puede querer usarlos todo el tiempo es en el caso de cambio de código. Es posible que tu colega tenga que cambiar tu código, y al hacerlo, piensa que ASI seguirá trabajando incluso con el cambio de código. Imagine que este no es el caso, y que su cambio en realidad hace que ASI haga algo mal. ¿Realmente vale la pena ese dolor de cabeza para tu colega? Si cambia lo suficiente de tu código y de repente se encuentra con muchos errores, podría estar bastante confundido si no conoce la forma exacta en que funciona ASI. Podría ahorrarle a un posible colega un poco de trabajo (innecesario) simplemente colocándolos en todas partes.
Al igual que algunos otros lenguajes modernos derivados de la sintaxis C, la sintaxis de JavaScript se diseñó para permitirle omitir punto y coma en casi todas las situaciones. Yo diría usarlos siempre o usarlos nunca *. Para usarlos "nunca", lo más breve posible es que cada instrucción va en una nueva línea y nunca comienza una línea con (
, [
, o `
.
Sin embargo, para usarlos "nunca", definitivamente debe usar un linter como JavaScript Standard Style o eslint built-in semi rule, que se asegurará de evitar los pocos inconvenientes como los siguientes:
a = b + c
(d + e).foo()
Lo anterior se interpreta como a = b + c(d + e).foo();
Tenga en cuenta que al seguir la regla anterior y no comenzar una línea con (
esta situación se previene.
Otro ejemplo común es el siguiente:
return
{
hello: "world"
};
De un vistazo, uno puede pensar que esto se interpretará como devolver un objeto, pero en realidad se interpreta como return;
y el código para definir el objeto después de la declaración de retorno es inalcanzable. De nuevo, siguiendo la regla de no comenzar una línea con {
esto se evita.
- * Está bien, está bien, no nunca , pero casi nunca.
Debe observar que no agrega puntos y comas, pero la mejor manera de evitar el error autoinfligido es no usarlos, excepto cuando el idioma lo requiera.
Este error es tan probable como el único caso en el que la omisión de puntos y comas podría no reflejar su intención real:
para (int i = 0; i <contar; i ++); hacer()
Hay una situación en la que su intención puede ser ambigua, con el estilo inusual de comenzar una línea con un carácter ( o un carácter, ya que la línea nueva no termina la declaración en ese caso. La gran mayoría de las veces es precisamente lo que quiero, es obvio cuando no lo es, y puedes soñar algunas declaraciones con o sin punto y coma (como mostré arriba) que son problemáticas.
No voy a decir que es irracional usar punto y coma porque está tan arraigado en la cultura, pero por favor ignoren el miedo irracional que muchos intentan apoyar con una discusión enrevesada e inexacta de ASI o agitando la mano. Es puro dogma, amigos.